VMX: Only write top-half of machine addresses into VMCS fields in PAE mode.
authorkfraser@localhost.localdomain <kfraser@localhost.localdomain>
Thu, 31 May 2007 15:09:11 +0000 (16:09 +0100)
committerkfraser@localhost.localdomain <kfraser@localhost.localdomain>
Thu, 31 May 2007 15:09:11 +0000 (16:09 +0100)
Signed-off-by: Keir Fraser <keir@xensource.com>
xen/arch/x86/hvm/vmx/vmcs.c
xen/arch/x86/hvm/vmx/vmx.c

index 413981c061b89284c04268c8285df68201fb05d0..a59fd6ba257d0ca3c42b2b6319e3aaa0b263ca2e 100644 (file)
@@ -438,9 +438,9 @@ static void construct_vmcs(struct vcpu *v)
 
     if ( cpu_has_vmx_tpr_shadow )
     {
-        uint64_t virt_page_ma = page_to_maddr(vcpu_vlapic(v)->regs_page);
+        paddr_t virt_page_ma = page_to_maddr(vcpu_vlapic(v)->regs_page);
         __vmwrite(VIRTUAL_APIC_PAGE_ADDR, virt_page_ma);
-#if defined (__i386__)
+#if defined (CONFIG_X86_PAE)
         __vmwrite(VIRTUAL_APIC_PAGE_ADDR_HIGH, virt_page_ma >> 32);
 #endif
         __vmwrite(TPR_THRESHOLD, 0);
index 2aff3d295a66adf36700bdff354224bc0d7cca83..d2eff79d10f7446cec5b407750e8d94ad54214e3 100644 (file)
@@ -2540,7 +2540,7 @@ static void vmx_install_vlapic_mapping(struct vcpu *v)
     vmx_vmcs_enter(v);
     __vmwrite(VIRTUAL_APIC_PAGE_ADDR, virt_page_ma);
     __vmwrite(APIC_ACCESS_ADDR, apic_page_ma);
-#if defined (__i386__)
+#if defined (CONFIG_X86_PAE)
     __vmwrite(VIRTUAL_APIC_PAGE_ADDR_HIGH, virt_page_ma >> 32);
     __vmwrite(APIC_ACCESS_ADDR_HIGH, apic_page_ma >> 32);
 #endif